package com.yvon.boot.mybatis;

import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * ibase树service
 *
 * @author : Yvon
 * @since : 2022-03-12
 */
@Transactional(readOnly = false)
public interface IBaseTreeService<T> extends IBaseService<T> {


    /**
     * 保存更新节点
     *
     * @param entity 实体
     * @return boolean
     */
    boolean saveUpdateNode(T entity);

    /**
     * 根据父ID查询子节点的
     *
     * @param parentId 父ID
     * @return
     */
    List<T> findChildListByParentId(Long parentId);

    /**
     * 根据树路径查询所有的子节点信息
     * @param parentIds
     * @return
     */
    List<T> findChildListByParentIds(String parentIds);

    /**
     * 查询最大编号
     * @param parentId
     * @return
     */
    Integer findMaxSort(Long parentId);

}
